Skill

JSP এ JSTL (JavaServer Pages Standard Tag Library)

Java Technologies - জেএসপি (JSP)
284

STL (JavaServer Pages Standard Tag Library) হল একটি ট্যাগ লাইব্রেরি যা JSP পেজে Java কোডের পরিবর্তে HTML মার্কআপ ব্যবহার করে ডাইনামিক কন্টেন্ট প্রদর্শন করার জন্য ডিজাইন করা হয়েছে। এটি JSP ডেভেলপমেন্টকে আরও সহজ, পরিষ্কার এবং রক্ষণাবেক্ষণযোগ্য করে তোলে। JSTL বিভিন্ন ধরনের প্রি-ডিফাইন্ড ট্যাগ প্রদান করে যা ডেভেলপারদের জন্য ওয়েব পেজে সাধারণ কার্যক্রম সম্পাদন সহজ করে।

JSTL এর বৈশিষ্ট্য


1. সহজ ট্যাগ ব্যবহার
JSTL বিভিন্ন ধরনের ট্যাগ প্রদান করে যেমন কন্ডিশনাল লজিক (if, choose), লুপিং, ফর্ম হ্যান্ডলিং, ইত্যাদি, যা Java কোড লেখার প্রয়োজন ছাড়া HTML পেজে ব্যবহৃত হতে পারে।

2. EL (Expression Language) সমর্থন
JSTL ট্যাগ গুলি EL (Expression Language) ব্যবহার করে ডাইনামিক কন্টেন্ট প্রদর্শন করতে সহায়তা করে, যাতে Java কোডের ব্যবহার কমানো যায় এবং কোড আরও পরিষ্কার হয়।

3. কোড রক্ষণাবেক্ষণ সহজ
JSTL ব্যবহারের মাধ্যমে কোড রক্ষণাবেক্ষণ আরও সহজ হয়, কারণ এটি Java কোড এবং HTML কোডকে আলাদা করে দেয় এবং একই পেজে লজিক্যাল কাজের জন্য JavaBeans বা সার্ভলেট ব্যবহারের সুযোগ দেয়।


JSTL ট্যাগ গুলির ধরন


1. Core Tags
Core ট্যাগগুলো জেএসপি পেজে সাধারণ কার্যক্রম যেমন কন্ডিশনাল লজিক, লুপ, ভেরিয়েবল ম্যানিপুলেশন ইত্যাদি সম্পাদন করতে ব্যবহৃত হয়।

  • <c:if>
    if শর্তাধীন ট্যাগ, যা একটি শর্ত পূরণ হলে কন্টেন্ট প্রদর্শন করে।

    উদাহরণ:

    <c:if test="${user.loggedIn}">
        <p>Welcome, ${user.name}!</p>
    </c:if>
    

    এখানে, test অ্যাট্রিবিউটের মাধ্যমে শর্ত দেওয়া হচ্ছে, যদি user.loggedIn সঠিক হয় তবে ভ্যালু প্রদর্শিত হবে।

  • <c:forEach>
    একটি লুপ ট্যাগ যা একটি তালিকা বা অ্যারে ইটারেট করে এবং প্রতিটি আইটেমের জন্য কোড ব্লক এক্সিকিউট করে।

    উদাহরণ:

    <c:forEach var="item" items="${itemList}">
        <p>${item}</p>
    </c:forEach>
    

    এখানে, items অ্যাট্রিবিউটে itemList দিয়ে লুপ চলবে এবং প্রতিটি আইটেমের জন্য <p> ট্যাগে প্রদর্শিত হবে।

2. Formatting Tags
Formatting ট্যাগগুলি ডেটা ফরম্যাট করতে ব্যবহৃত হয়, যেমন তারিখ, নম্বর ফরম্যাট করা।

  • <fmt:formatDate>
    তারিখের ফরম্যাট করার জন্য ব্যবহৃত হয়।

    উদাহরণ:

    <fmt:formatDate value="${date}" pattern="yyyy-MM-dd"/>
    

    এখানে, value অ্যাট্রিবিউটে date অবজেক্টটি তারিখের মান হিসাবে প্রদান করা হয়েছে, এবং pattern অ্যাট্রিবিউটে তারিখের ফরম্যাট দেওয়া হয়েছে।

3. SQL Tags
JSTL SQL ট্যাগগুলি ডাটাবেস থেকে তথ্য পেতে এবং ডেটাবেস ইন্টারঅ্যাকশনের জন্য ব্যবহৃত হয়।

  • <sql:query>
    SQL কুয়েরি চালানোর জন্য ব্যবহৃত হয়।

    উদাহরণ:

    <sql:query var="result" dataSource="${dataSource}">
        SELECT * FROM users WHERE id = 1;
    </sql:query>
    

    এখানে, dataSource থেকে ডাটাবেসের সংযোগ নেওয়া হচ্ছে এবং SQL কুয়েরি চালানো হচ্ছে। তারপরে result এ আউটপুট রাখা হবে।

4. XML Tags
XML ডেটা প্রসেসিং করার জন্য ব্যবহৃত হয়।

  • <x:parse>
    XML ডেটা প্যারে এবং তার থেকে তথ্য বের করার জন্য ব্যবহৃত হয়।

    উদাহরণ:

    <x:parse var="xmlData" xml="${someXmlContent}"/>
    

JSTL এর সুবিধা


1. কোডের স্বচ্ছতা বৃদ্ধি
JSTL ব্যবহারের মাধ্যমে Java কোড HTML পেজ থেকে সরিয়ে দেওয়া যায়, যার ফলে কোড আরও পরিষ্কার ও রক্ষণাবেক্ষণযোগ্য হয়।

2. দ্রুত ডেভেলপমেন্ট
JSTL ট্যাগ গুলি ব্যবহার করে ডেভেলপমেন্ট প্রক্রিয়া দ্রুত হয়, কারণ এটি অনেক সাধারণ কার্যক্রমকে সহজভাবে সম্পাদন করতে সাহায্য করে। ডেভেলপাররা Java কোড লিখতে না-ও হতে পারে।

3. রিডিউসড Java কোড
JSTL ব্যবহার করার ফলে Java কোডের পরিমাণ কমে যায়, কারণ বেশিরভাগ লজিক ট্যাগগুলির মাধ্যমে সম্পাদিত হয়। এটি কোড রিডেবিলিটি এবং রক্ষণাবেক্ষণ সহজ করে।


সারাংশ


JSTL হল একটি শক্তিশালী টুল যা জেএসপি ডেভেলপমেন্টে Java কোড কমাতে সাহায্য করে এবং HTML এর মধ্যে ডাইনামিক কন্টেন্ট যুক্ত করতে আরও সহজ পদ্ধতি প্রদান করে। এটি বিভিন্ন ধরনের ট্যাগের মাধ্যমে সাধারণ কার্যক্রম যেমন শর্তাধীন লজিক, লুপিং, ডেটা ফরম্যাটিং, SQL কুয়েরি ইত্যাদি সহজভাবে সম্পাদন করতে সহায়তা করে। JSTL ব্যবহারের মাধ্যমে কোডের পরিষ্কারতা, রক্ষণাবেক্ষণ এবং ডেভেলপমেন্ট প্রক্রিয়া উন্নত হয়।

Content added By

JSTL কি এবং এর গুরুত্ব

307

JSTL (JavaServer Pages Standard Tag Library) হল একটি ট্যাগ লাইব্রেরি যা জেএসপি (JSP) পেজের জন্য স্ট্যান্ডার্ড ট্যাগ প্রদান করে। এটি জেএসপি পেজে সাধারণ কাজ যেমন কন্ডিশনাল লজিক, লুপ, ডেটা ফরম্যাটিং, এবং ইউআরএল রিডিরেকশন ইত্যাদি করার জন্য ব্যবহৃত হয়। JSTL ব্যবহারের মাধ্যমে ডেভেলপাররা জাভা কোডের পরিবর্তে ট্যাগ ব্যবহার করতে পারে, যা কোডের পাঠযোগ্যতা এবং রক্ষণাবেক্ষণযোগ্যতা বৃদ্ধি করে।

JSTL এর প্রধান বৈশিষ্ট্য


JSTL এর মধ্যে বেশ কিছু প্রকারের ট্যাগ রয়েছে, যা প্রধানত ৪টি ভিন্ন ক্যাটাগরিতে বিভক্ত:

  1. Core Tags: এই ট্যাগগুলো মূলত সাধারণ কাজের জন্য ব্যবহৃত হয়, যেমন ডাটা প্রদর্শন, কন্ডিশনাল স্টেটমেন্ট, লুপ ইত্যাদি। উদাহরণস্বরূপ:
    • <c:if>: কন্ডিশনাল লজিক প্রয়োগ করতে।
    • <c:forEach>: লুপিংয়ের জন্য।
    • <c:choose>: স্বতন্ত্র শাখা নির্বাচন করতে।
  2. Formatting Tags: এই ট্যাগগুলো ডেটা ফরম্যাটিংয়ের জন্য ব্যবহৃত হয়, যেমন ডেট, সংখ্যার ফরম্যাট ইত্যাদি।
    • <fmt:formatDate>: তারিখ ফরম্যাট করার জন্য।
    • <fmt:formatNumber>: সংখ্যা ফরম্যাট করতে।
  3. SQL Tags: এই ট্যাগগুলো ডেটাবেসের সঙ্গে যোগাযোগ করতে ব্যবহৃত হয়। এটি ডেটাবেস থেকে ডেটা ফেচ করতে সাহায্য করে।
    • <sql:query>: ডেটাবেস থেকে কোয়েরি রান করতে।
    • <sql:update>: ডেটাবেসে আপডেট বা ইনসার্ট করতে।
  4. XML Tags: এই ট্যাগগুলো XML ডেটা প্রসেসিংয়ের জন্য ব্যবহৃত হয়।
    • <x:parse>: XML ডেটা পার্স করার জন্য।
    • <x:out>: XML ডেটা আউটপুট করার জন্য।

JSTL এর গুরুত্ব


১. সহজ কোডিং: JSTL এর মাধ্যমে আপনি জাভা কোডের পরিবর্তে ট্যাগ ব্যবহার করে বিভিন্ন লজিকাল কাজ করতে পারেন, যেমন কন্ডিশনাল চেক, লুপিং ইত্যাদি। এর ফলে কোডের জটিলতা কমে যায় এবং ডেভেলপমেন্ট প্রক্রিয়া দ্রুত হয়।

২. কোড রক্ষণাবেক্ষণের সুবিধা: JSTL ব্যবহারের ফলে জাভা কোড কমপ্লেক্সিটির বাইরে চলে আসে, যার ফলে কোডটি সহজে রক্ষণাবেক্ষণযোগ্য হয়। কোডে পরিবর্তন বা সংশোধন করতে হলে আপনাকে শুধু ট্যাগ বা টেমপ্লেটের মধ্যে কাজ করতে হবে, যা সার্ভার সাইড জাভা কোডের পরিবর্তন করার চেয়ে অনেক সহজ।

৩. কোড পুনঃব্যবহারযোগ্যতা: একবার JSTL ট্যাগ তৈরি বা কনফিগার করা হলে তা অন্যান্য জেএসপি পেজে পুনঃব্যবহার করা যেতে পারে। এর ফলে একাধিক পেজে একই কোড পুনরায় লিখতে হয় না।

৪. নিরাপত্তা: JSTL এর সাহায্যে সরাসরি জাভা কোড জেএসপি পেজে না লিখে ট্যাগ ব্যবহার করা হয়, যা সার্ভার সাইড কোডের নিরাপত্তা বাড়ায় এবং এটি ব্যবহারকারী পক্ষ থেকে কোড দেখতে বা পরিবর্তন করার সুযোগ কমিয়ে দেয়।

৫. প্রোডাক্টিভিটি বৃদ্ধি: JSTL এর সাহায্যে দ্রুত ডেভেলপমেন্ট করা সম্ভব, কারণ এতে জাভা কোডের পরিবর্তে সহজ ট্যাগ ব্যবহৃত হয়। এর ফলে ডেভেলপাররা সময় সাশ্রয়ীভাবে কাজ করতে পারে।

৬. স্ট্যান্ডার্ডাইজেশন: JSTL একটি স্ট্যান্ডার্ড ট্যাগ লাইব্রেরি, যা জেএসপি প্রোজেক্টে ব্যবহার করা হয়। এটি ওয়েব ডেভেলপমেন্টের ক্ষেত্রে এক ধরনের স্ট্যান্ডার্ড প্রক্রিয়া তৈরি করে, যার মাধ্যমে কোডের গুণগত মান বজায় রাখা যায়।

JSTL ট্যাগ ব্যবহারের উদাহরণ


ধরা যাক, আমরা একটি টু-ডু তালিকা তৈরি করতে চাই এবং সেই তালিকায় প্রতিটি টু-ডু আইটেম দেখাতে চাই। আমরা JSTL <c:forEach> ট্যাগ ব্যবহার করতে পারি।

<c:forEach var="todo" items="${todos}">
    <p>${todo}</p>
</c:forEach>

এখানে todos একটি তালিকা বা অ্যারের ডেটা, এবং <c:forEach> ট্যাগ দিয়ে প্রতিটি টু-ডু আইটেম প্রদর্শন করা হচ্ছে। এতে কোনো জাভা কোড লিখতে হয় না, শুধুমাত্র JSTL ট্যাগ ব্যবহার করা হচ্ছে।

সারাংশ


JSTL (JavaServer Pages Standard Tag Library) হল একটি অত্যন্ত গুরুত্বপূর্ণ টুল যা জেএসপি পেজে সাধারণ এবং পুনঃব্যবহারযোগ্য কাজ করতে সাহায্য করে। এটি জাভা কোডের পরিবর্তে HTML-ভিত্তিক ট্যাগ ব্যবহার করে ডেভেলপমেন্ট প্রক্রিয়া সহজ করে তোলে এবং কোড রক্ষণাবেক্ষণযোগ্যতা ও নিরাপত্তা বৃদ্ধি করে। JSTL ব্যবহারের মাধ্যমে কোডকে স্ট্যান্ডার্ডাইজ করা যায় এবং এর ফলে দ্রুত এবং কার্যকরী ওয়েব ডেভেলপমেন্ট সম্ভব হয়।

Content added By

JSTL Core Library এর ব্যবহার

194

JSTL (JSP Standard Tag Library) হল একটি ট্যাগ লাইব্রেরি যা জেএসপি (JSP) পেজে বিভিন্ন ধরনের সাধারণ কাজ সম্পাদন করতে ব্যবহৃত হয়। JSTL Core Library প্রধানত কন্ট্রোল স্ট্রাকচার (যেমন লুপ, শর্ত, অ্যাট্রিবিউট হ্যান্ডলিং) এবং ফ্লো কন্ট্রোল ট্যাগ সরবরাহ করে, যা জেএসপি কোডের সিম্প্লিফিকেশন এবং রিডেবিলিটি বাড়ায়।

JSTL Core Library ব্যবহার করার মাধ্যমে ডেভেলপাররা কম কোডে কাজ করতে পারেন এবং ওয়েব পেজে কার্যকরী ডাইনামিক কন্টেন্ট সন্নিবেশ করতে পারেন। এটি জাভা কোড লেখার পরিমাণ কমিয়ে দেয়, ফলে কোড আরো সহজ এবং পরিষ্কার হয়।

JSTL Core Library এর প্রধান ট্যাগ


JSTL Core Library-তে বেশ কয়েকটি গুরুত্বপূর্ণ ট্যাগ রয়েছে, যার মাধ্যমে জেএসপি পেজে বিভিন্ন কাজ করা যায়। নিচে কিছু প্রাথমিক ট্যাগ এবং তাদের ব্যবহার দেখানো হলো:

১. <c:if> - শর্তাধীন (Conditional) ট্যাগ


এই ট্যাগটি একটি শর্ত (condition) যাচাই করে এবং শর্ত পূর্ণ হলে নির্দিষ্ট কোড ব্লকটি কার্যকরী করে।

<c:if test="${userAge > 18}">
    <p>আপনি ১৮ বছরের বেশি বয়সী।</p>
</c:if>

এখানে test অ্যাট্রিবিউটের মাধ্যমে শর্ত প্রদান করা হয়, এবং শর্ত পূর্ণ হলে <p> ট্যাগের মধ্যে প্রদর্শন করা হয়।

২. <c:choose> - শর্তের মধ্যে একাধিক বিকল্প (Multiple conditions)


<c:choose> ট্যাগটি একাধিক শর্তের জন্য ব্যবহার করা হয়। এটি <c:when> এবং <c:otherwise> ট্যাগের মধ্যে ব্যবহৃত হয়।

<c:choose>
    <c:when test="${userAge > 18}">
        <p>আপনি প্রাপ্তবয়স্ক।</p>
    </c:when>
    <c:otherwise>
        <p>আপনি প্রাপ্তবয়স্ক নন।</p>
    </c:otherwise>
</c:choose>

এখানে <c:when> শর্ত পূর্ণ হলে একটি বার্তা প্রদর্শন করবে এবং <c:otherwise> শর্ত পূর্ণ না হলে অন্য একটি বার্তা দেখাবে।

৩. <c:forEach> - লুপ ট্যাগ


এই ট্যাগটি একটি তালিকা বা অ্যারে এর উপর লুপ চালিয়ে প্রতিটি আইটেমকে প্রক্রিয়া করতে ব্যবহৃত হয়।

<c:forEach var="item" items="${itemList}">
    <p>${item}</p>
</c:forEach>

এখানে items অ্যাট্রিবিউটে একটি তালিকা (যেমন itemList) দেওয়া হয় এবং var দিয়ে প্রতি আইটেমের জন্য একটি পরিবর্তনশীল (যেমন item) নির্ধারণ করা হয়।

৪. <c:out> - আউটপুট ট্যাগ


<c:out> ট্যাগটি জাভা ভ্যারিয়েবল বা এক্সপ্রেশন কে HTML পেজে আউটপুট করার জন্য ব্যবহৃত হয়। এটি XSS (Cross-Site Scripting) আক্রমণ প্রতিরোধের জন্য নিরাপদ আউটপুট নিশ্চিত করে।

<c:out value="${userName}" />

এখানে value অ্যাট্রিবিউটে একটি জাভা ভ্যারিয়েবল (যেমন userName) দেওয়া হয়েছে এবং এটি HTML পেজে প্রিন্ট হবে।

৫. <c:set> - ভ্যালু সেট করা


<c:set> ট্যাগটি একটি নতুন ভ্যালু সেট করতে বা একটি ভ্যারিয়েবল তৈরি করতে ব্যবহৃত হয়।

<c:set var="userName" value="John Doe" />

এখানে var অ্যাট্রিবিউটে ভ্যারিয়েবলের নাম এবং value অ্যাট্রিবিউটে সেই ভ্যারিয়েবলের মান দেওয়া হয়েছে।

JSTL Core Library ব্যবহার করা


JSTL Core Library ব্যবহার করতে আপনাকে প্রথমে জেএসপি পেজে JSTL লাইব্রেরি ইনক্লুড করতে হবে। এর জন্য ট্যাগ লাইব্রেরি ডিরেক্টিভ (taglib directive) ব্যবহার করা হয়।

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

এই লাইব্রেরি ডিরেক্টিভটি পেজে যোগ করার পর আপনি উপরে উল্লেখিত <c:if>, <c:forEach>, <c:out>, ইত্যাদি ট্যাগ ব্যবহার করতে পারবেন।

উদাহরণ


ধরা যাক, আপনার কাছে একটি তালিকা আছে এবং আপনি সেই তালিকার প্রতিটি আইটেম HTML পেজে প্রিন্ট করতে চান:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<html>
<body>
    <h2>আইটেম তালিকা</h2>
    <c:forEach var="item" items="${itemList}">
        <p>${item}</p>
    </c:forEach>
</body>
</html>

এখানে itemList হল একটি ডাটা, যেটি মডেল থেকে কন্ট্রোলারের মাধ্যমে ভিউতে পাঠানো হয়েছে। <c:forEach> ট্যাগটি ওই তালিকাটি লুপ করবে এবং প্রতিটি আইটেম ট্যাগে প্রদর্শন করবে।

সারাংশ


JSTL Core Library জেএসপি পেজে সাধারণ কাজ যেমন শর্তাধীন লজিক, লুপিং, ভ্যালু সেট করা, আউটপুট প্রদর্শন ইত্যাদি সহজভাবে পরিচালনা করতে সহায়ক। এটি কোডের পুনঃব্যবহারযোগ্যতা বাড়ায়, এবং জাভা কোডের পরিমাণ কমিয়ে দেয়, ফলে কোড আরও পরিষ্কার এবং রিডেবল হয়।

Content added By

ফরম্যাটিং এবং ফাংশন ট্যাগ লাইব্রেরি

138

জেএসপি (JSP) ট্যাগ লাইব্রেরি, বিশেষত ফরম্যাটিং ট্যাগ লাইব্রেরি এবং ফাংশন ট্যাগ লাইব্রেরি, ডেভেলপারদেরকে HTML কোডের মধ্যে সহজভাবে জটিল লজিক প্রয়োগ করতে সহায়তা করে। এই লাইব্রেরিগুলি জেএসপির (JSP) কার্যকারিতা বাড়ানোর জন্য ব্যবহৃত হয়, যেখানে বিভিন্ন ধরনের ডেটা ফরম্যাটিং এবং স্ট্রিং ম্যানিপুলেশন কাজ সহজভাবে সম্পন্ন করা যায়।

ফরম্যাটিং ট্যাগ লাইব্রেরি (JSTL Formatting)


ফরম্যাটিং ট্যাগ লাইব্রেরি JSTL (JavaServer Pages Standard Tag Library) এর একটি গুরুত্বপূর্ণ অংশ, যা ডেটা ফরম্যাটিংয়ের জন্য ব্যবহৃত হয়। এটি টাইপ-কনভার্সন, নম্বর ফরম্যাটিং, ডেট এবং সময় ফরম্যাটিংয়ের মতো কাজ করতে সাহায্য করে।

ফরম্যাটিং ট্যাগ লাইব্রেরির কিছু প্রধান ট্যাগ:

  1. fmt:formatNumber: সংখ্যা বা মুদ্রা ফরম্যাট করার জন্য ব্যবহৃত হয়।
  2. fmt:formatDate: তারিখ এবং সময় ফরম্যাট করার জন্য ব্যবহৃত হয়।
  3. fmt:parseDate: স্ট্রিং থেকে তারিখে কনভার্ট করার জন্য ব্যবহৃত হয়।
  4. fmt:message: লোকালাইজেশন বা ভাষার বৈচিত্র্যের জন্য ব্যবহৃত হয়, যাতে একটি মেসেজ ফাইল থেকে বার্তা নেওয়া যায়।

উদাহরণ: fmt:formatNumber

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

<fmt:formatNumber value="${price}" type="currency"/>

এখানে, price ভেরিয়েবলটি একটি সংখ্যার মান ধারণ করে, এবং fmt:formatNumber ট্যাগটি এটিকে মুদ্রা হিসাবে ফরম্যাট করবে।

উদাহরণ: fmt:formatDate

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

<fmt:formatDate value="${date}" pattern="yyyy-MM-dd"/>

এই কোডটি date ভেরিয়েবলটি নির্দিষ্ট ফরম্যাটে (এখানে yyyy-MM-dd) প্রদর্শন করবে।

ফাংশন ট্যাগ লাইব্রেরি (JSTL Functions)


ফাংশন ট্যাগ লাইব্রেরি JSTL এর একটি আরেকটি গুরুত্বপূর্ণ অংশ যা স্ট্রিং ম্যানিপুলেশন, সংখ্যা প্রসেসিং, শর্তাবলীর মূল্যায়ন এবং অন্যান্য ফাংশনাল কাজ করতে সাহায্য করে।

ফাংশন ট্যাগ লাইব্রেরির কিছু প্রধান ফাংশন:

  1. fn:length: একটি স্ট্রিং বা কালেকশন এর দৈর্ঘ্য ফেরত দেয়।
  2. fn:contains: দুটি স্ট্রিং এর মধ্যে সাবস্ট্রিং উপস্থিত কিনা তা যাচাই করে।
  3. fn:toUpperCase: স্ট্রিংটিকে বড় হাতের অক্ষরে রূপান্তরিত করে।
  4. fn:toLowerCase: স্ট্রিংটিকে ছোট হাতের অক্ষরে রূপান্তরিত করে।
  5. fn:trim: স্ট্রিং এর প্রথম এবং শেষের ফাঁকা জায়গাগুলো সরিয়ে ফেলে।

উদাহরণ: fn:length

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

<p>স্ট্রিংয়ের দৈর্ঘ্য: <fmt:formatNumber value="${fn:length(name)}" /></p>

এখানে, name ভেরিয়েবলটির দৈর্ঘ্য fn:length ফাংশন দ্বারা বের করা হয়েছে এবং fmt:formatNumber ট্যাগ ব্যবহার করে তা প্রদর্শন করা হয়েছে।

উদাহরণ: fn:contains

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

<c:if test="${fn:contains(message, 'error')}">
    <p>এটি একটি ত্রুটি বার্তা।</p>
</c:if>

এখানে, fn:contains ফাংশনটি চেক করে যে message স্ট্রিংটি 'error' শব্দটি ধারণ করছে কিনা। যদি করে, তাহলে ত্রুটি বার্তা দেখানো হবে।

JSTL ট্যাগ লাইব্রেরি ব্যবহার করার সুবিধা


  1. সহজ ব্যবহার: জেএসপি পৃষ্ঠায় জটিল লজিক বা ফরম্যাটিং ফাংশন ব্যবহার করা খুব সহজ হয়ে যায়।
  2. কোডের স্বচ্ছতা: Java কোড লেখার প্রয়োজন কমে যায়, ফলে কোডের স্বচ্ছতা বৃদ্ধি পায়।
  3. ভাষার বৈচিত্র্য: fmt:message ট্যাগের মাধ্যমে আন্তর্জাতিকীকরণ (Internationalization) এবং লোকালাইজেশন (Localization) সহজ হয়ে যায়।
  4. কোডের পুনঃব্যবহারযোগ্যতা: ফাংশন ট্যাগ লাইব্রেরির মাধ্যমে স্ট্রিং এবং ডেটা ম্যানিপুলেশন করা সম্ভব হয়, যা কোড পুনঃব্যবহারযোগ্যতা নিশ্চিত করে।

ফরম্যাটিং এবং ফাংশন ট্যাগ লাইব্রেরি জেএসপি ডেভেলপমেন্টে অত্যন্ত গুরুত্বপূর্ণ উপাদান। এগুলি ডেটা ফরম্যাটিং, স্ট্রিং ম্যানিপুলেশন, এবং লোকালাইজেশন সহজভাবে পরিচালনা করতে সাহায্য করে, ফলে অ্যাপ্লিকেশনটির কোড পরিষ্কার এবং রক্ষণাবেক্ষণ সহজ হয়।

Content added By

উদাহরণ সহ JSTL ব্যবহার

231

JSTL (JSP Standard Tag Library) হল একটি ট্যাগ লাইব্রেরি যা জেএসপি (JSP) পেজগুলিতে সাধারণ এবং প্রয়োজনীয় ফিচারগুলো প্রয়োগ করতে সহায়ক। এটি JavaServer Pages (JSP) এ লজিক্যাল কাজ, লুপিং, শর্তাধীন লজিক, ডেটা ম্যানিপুলেশন এবং অন্যান্য টাস্কের জন্য ট্যাগ সরবরাহ করে।

JSTL বিভিন্ন ধরনের ট্যাগ দিয়ে কাজ করে, যার মধ্যে উল্লেখযোগ্য কিছু হল:

  • Core Tags: সাধারণ কাজ যেমন লুপ, শর্ত, ইত্যাদি।
  • Formatting Tags: ডেটা ফরম্যাটিং, তারিখ ইত্যাদি।
  • SQL Tags: ডেটাবেস অপারেশন।
  • XML Tags: XML ফাইল প্রক্রিয়া করা।
  • Internationalization Tags: ভাষার কনভার্শন ইত্যাদি।

এখানে আমরা Core Tags এবং Formatting Tags এর মাধ্যমে একটি সাধারণ উদাহরণ দেখব।

JSTL ব্যবহারের জন্য প্রস্তুতি


JSTL ব্যবহার করার জন্য প্রথমে জেএসপি প্রজেক্টে JSTL লাইব্রেরি যুক্ত করতে হয়। মেভেন (Maven) বা জেডি (JAR) ফাইলের মাধ্যমে এটি অন্তর্ভুক্ত করা যায়।

মেভেন পম (pom.xml):

<dependency>
    <groupId>javax.servlet.jsp.jstl</groupId>
    <artifactId>javax.servlet.jsp.jstl-api</artifactId>
    <version>1.2.1</version>
</dependency>

<dependency>
    <groupId>org.glassfish</groupId>
    <artifactId>javax.servlet.jsp.jstl</artifactId>
    <version>1.2.1</version>
</dependency>

JAR ফাইলের মাধ্যমে:

JSTL-এর jstl.jar এবং standard.jar ফাইলটি WEB-INF/lib ডিরেক্টরিতে যুক্ত করতে হবে।

JSTL ট্যাগ ব্যবহার উদাহরণ


এখানে আমরা একটি উদাহরণ দেখব যেখানে Core Tag এবং Formatting Tag ব্যবহার করা হবে।

১. Core Tags - Looping এবং Conditional Logic

ধরা যাক, আমাদের একটি Student ক্লাসে ছাত্রদের তথ্য রয়েছে এবং আমরা একটি তালিকা তৈরি করতে চাই।

Student.java:

public class Student {
    private String name;
    private int age;

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }
}

এখন students.jsp পেজে আমরা এই ডেটাগুলো লুপ করে দেখাব।

students.jsp:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<html>
<head>
    <title>Student List</title>
</head>
<body>
    <h2>Students Information</h2>
    <ul>
        <c:set var="students" value="${studentsList}" />
        <c:forEach var="student" items="${students}">
            <li>${student.name} - ${student.age} years old</li>
        </c:forEach>
    </ul>
</body>
</html>

ব্যাখ্যা:

  • <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> - এটি JSTL Core ট্যাগ লাইব্রেরি অন্তর্ভুক্ত করার জন্য ব্যবহার করা হয়।
  • <c:set> - একটি ভ্যারিয়েবল সেট করতে ব্যবহৃত হয়।
  • <c:forEach> - এটি একটি লুপ, যা একটি তালিকা বা অ্যারের মধ্যে ইটারেট করতে ব্যবহৃত হয়।

২. Formatting Tags - Date Formatting

ধরা যাক, আমরা একটি তারিখ ফরম্যাট করতে চাই।

date.jsp:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>

<html>
<head>
    <title>Date Example</title>
</head>
<body>
    <h2>Formatted Date</h2>
    <fmt:formatDate value="${date}" pattern="dd-MM-yyyy" />
</body>
</html>

ব্যাখ্যা:

  • <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> - এটি Formatting ট্যাগ লাইব্রেরি অন্তর্ভুক্ত করার জন্য ব্যবহৃত হয়।
  • <fmt:formatDate> - এই ট্যাগটি নির্দিষ্ট তারিখের মান ফরম্যাট করতে ব্যবহৃত হয়।

সার্ভলেট থেকে ডেটা পাঠানো


উপরের students.jsp পেজটি চালানোর জন্য, আমাদের সার্ভলেট বা JavaBean থেকে ডেটা পাঠাতে হবে।

StudentServlet.java:

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;

public class StudentServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        List<Student> students = new ArrayList<>();
        students.add(new Student("John", 20));
        students.add(new Student("Jane", 22));
        students.add(new Student("Doe", 21));

        request.setAttribute("studentsList", students);
        RequestDispatcher dispatcher = request.getRequestDispatcher("students.jsp");
        dispatcher.forward(request, response);
    }
}

ব্যাখ্যা:

  • এখানে, আমরা Student ক্লাসের একটি তালিকা তৈরি করেছি এবং তা studentsList নামে রিকোয়েস্টে সেভ করেছি।
  • তারপর এই তালিকাটি students.jsp পেজে ফরওয়ার্ড করা হয়েছে।

সারাংশ


JSTL ব্যবহার করার মাধ্যমে জেএসপি পেজগুলির মধ্যে Java কোডের পরিমাণ কমানো যায় এবং HTML ও Java কোডের মধ্যে বিভাজন বজায় রাখা যায়। JSTL এর Core Tags এবং Formatting Tags ব্যবহার করে সাধারণ কাজ যেমন লুপিং, শর্তাবলী, ডেটা ফরম্যাটিং সহজে করা যায়। এই পদ্ধতিতে কোড পরিষ্কার এবং রক্ষণাবেক্ষণে সহজ হয়।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...